package keypairs

import (
	"gitee.com/djaf/my-certs/app/data/entity"
	"gitee.com/djaf/my-certs/app/web/dto"
	"github.com/starter-go/security-gorm/rbacdb"
)

// ConvertE2D ...
func ConvertE2D(src *entity.KeyPair) (*dto.KeyPair, error) {
	dst := new(dto.KeyPair)
	dst.ID = src.ID
	rbacdb.CopyBaseFieldsFromEntityToDTO(&src.BaseEntity, &dst.BaseDTO)
	dst.Algorithm = src.Algorithm
	dst.Format = src.Format
	dst.Encoding = src.Encoding
	// dst.PrivateKey = src.PrivateKeyData
	return dst, nil
}

// ConvertListE2D ...
func ConvertListE2D(src []*entity.KeyPair) ([]*dto.KeyPair, error) {
	dst := make([]*dto.KeyPair, 0)
	for _, item1 := range src {
		item2, err := ConvertE2D(item1)
		if err != nil {
			return nil, err
		}
		dst = append(dst, item2)
	}
	return dst, nil
}

// ConvertD2E ...
func ConvertD2E(src *dto.KeyPair) (*entity.KeyPair, error) {
	dst := new(entity.KeyPair)
	dst.ID = src.ID
	rbacdb.CopyBaseFieldsFromDtoToEntity(&src.BaseDTO, &dst.BaseEntity)
	dst.Algorithm = src.Algorithm
	dst.Format = src.Format
	dst.Encoding = src.Encoding
	// dst.PrivateKey = src.PrivateKeyData
	return dst, nil
}
